package 字符串.easy;

import java.util.Stack;

/**
 * @author Lw中
 * @date 2020/8/24 9:51
 */
public class YiErErYi {

    // 1221. 分割平衡字符串

    public static int balancedStringSplit(String s) {
        // 方法一：使用贪心
//        int num = 0, res = 0;
//        for (int i = 0; i < s.length(); i++) {
//            char c = s.charAt(i);
//            if (c == 'L') {
//                num ++;
//            } else {
//                num--;
//            }
//            if (num == 0) {
//                res++;
//            }
//        }
//        return res;
        // 方法二：使用栈实现匹配
        Stack<Character> stack = new Stack<>();
        char[] chars = s.toCharArray();
        int n = 0;
        for (char c : chars) {
            if (c == 'R') {
                if (!stack.isEmpty() && stack.peek() == 'L') stack.pop();
                else stack.push(c);
            }
            else if (c == 'L') {
                if (!stack.isEmpty() && stack.peek() == 'R') stack.pop();
                else stack.push(c);
            }
            if (stack.isEmpty()) n++;
            // 上面的代码可以简化
//            if (stack.isEmpty()) {
//                stack.push(c);
//            } else {
//                if (c == stack.peek()) {
//                    stack.push(c);
//                } else {
//                    stack.pop();
//                }
//                if (stack.isEmpty()) n++;
//            }
        }
        return n;
    }

    public static void main(String[] args) {
        int n = balancedStringSplit("RLLLLRRRLR");
        System.out.println(n);
    }

}
